from collections.abc import Iterable

print(isinstance("abc", Iterable))
print(isinstance([1, 2, 3, 4], Iterable))
print(isinstance("abc", str))
print(isinstance({}, Iterable))
print(isinstance((x for x in range(10)), Iterable))

# 集合数据类型如list、dict、str等是Iterable但不是Iterator，不过可以通过iter()函数获得一个Iterator对象。


# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

